﻿using RepositoryEntity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace IRepositoryBll
{
    /// <summary>
    /// 部门信息业务访问层接口
    /// </summary>
    public interface IDepartmentInfoBll
    {
        bool AddDepartmentInfo(DepartmentInfo departmentInfo);

        /// <summary>
        /// 删除部门
        /// </summary>
        /// <param name="departmentInfoId">部门id</param>
        /// <returns></returns>
        bool DeleteDepartmentInfo(string departmentInfoId);
        /// <summary>
        /// 更新部门信息
        /// </summary>
        /// <param name="ID"></param>
        /// <param name="DepartmentName"></param>
        /// <param name="Description"></param>
        /// <param name="LeaderID"></param>
        /// <returns></returns>
        bool UpdateDepartmentInfo(string ID,string DepartmentName, string Description, string LeaderID,string ParentID);
        /// <summary>
        /// 更新部门
        /// </summary>
        /// <param name="departmentInfo"></param>
        /// <returns></returns>
        bool UpdateDepartmentInfo(DepartmentInfo departmentInfo);


        DepartmentInfo GetDepartmentInfo(string departmentInfoId);
        List<DepartmentInfo> GetDepartmentInfoList();
        /// <summary>
        /// 部门下拉集合
        /// </summary>
        /// <returns></returns>
        object GetDepartmentSelectOption();
       
        /// <summary>
        /// 删除角色
        /// </summary>
        /// <param name="departmentInfoId"></param>
        /// <returns></returns>
        bool SoftDepartmentInfo(string departmentInfoId);
        /// <summary>
        /// 分页
        /// </summary>
        /// <param name="page"></param>
        /// <param name="limit"></param>
        /// <param name="count"></param>
        /// <param name="departmentName"></param>
        /// <returns></returns>
        object GetDepartmentInfoListByPage(int page, int limit, out int count, string departmentName);
        /// <summary>
        /// 父级部门下拉选数据
        /// </summary>
        /// <param name="departmentInfoId"></param>
        /// <returns></returns>
        object GetDepartmentSelectOption(string departmentInfoId);
    }
}
